package models

import (
	"context"
	"go.mongodb.org/mongo-driver/bson"
	"log"
)

// RoomBasic 房间基础信息
type RoomBasic struct {
	Identity     string `json:"identity" bson:"identity"`           // 用户唯一标识
	Number       string `json:"number" bson:"number"`               // 房间号
	Name         string `json:"name" bson:"name"`                   // 房间名称
	Info         string `json:"info,omitempty" bson:"info"`         // 房间信息 为空时忽略
	UserIdentity string `json:"user_identity" bson:"user_identity"` // 创建用户ID
	CreatedAt    int64  `json:"created_at" bson:"created_at"`       // 创建时间
	UpdatedAt    int64  `json:"updated_at" bson:"updated_at"`       // 更新时间
}

// CollectionName 返回集合名称
func (RoomBasic) CollectionName() string {
	return "room_basic"
}

// InsertOneRoomBasic 向数据库中插入一条房间记录
func InsertOneRoomBasic(rb *RoomBasic) error {
	_, err := Mongo.Collection(RoomBasic{}.CollectionName()).
		InsertOne(context.Background(), rb) // 向MongoDB插入单条房间记录
	return err // 返回操作结果（成功为nil，失败为错误信息）
}

// DeleteRoomBasic 根据房间标识删除房间基础信息记录
func DeleteRoomBasic(roomIdentity string) error {
	// 在MongoDB的房间基础信息集合中删除指定房间记录
	_, err := Mongo.Collection(RoomBasic{}.CollectionName()).
		DeleteOne(context.Background(), bson.M{"identity": roomIdentity}) // 根据房间标识删除

	// 检查删除操作是否出错
	if err != nil {
		log.Printf("DB ERROR:%v\n", err) // 记录数据库错误日志
		return err                       // 返回错误信息
	}

	return nil // 删除成功，返回nil
}
